The development of complicated integrated circuits often requires powerful numerical simulation programs. For example, circuit simulation is an essential part in the design flow of integrated circuits, helping circuit designers to verify the functionality and performance of their designs without going through expensive fabrication processes. Examples of electronic circuit simulators include the Simulation Program with Integrated Circuit Emphasis (SPICE) developed at the University of California, Berkeley (UC Berkeley), and various enhanced versions or derivatives of SPICE, such as SPECTRE, developed by Cadence Design Systems, Inc. SPICE and its derivatives or enhanced versions will be referred to hereafter as SPICE circuit simulators, or SPICE.
An integrated circuit is a network of circuit elements such as resistors, capacitors, inductors, mutual inductors, transmission lines, diodes, bipolar junction transistors (BJT), junction field effect transistors (JFET), metal-oxide-semiconductor field effect transistors (MOSFET), metal-semiconductor field effect transistors (MESFET), thin-film transistors (TFT), etc. SPICE models a circuit in a node/element fashion, i.e., the circuit is regarded as a collection of various circuit elements connected at nodes. At the heart of SPICE is the so-called Nodal Analysis, which is accomplished by formulating nodal equations (or circuit equations) in a matrix format to represent the circuit and by solving these nodal equations. The circuit elements are modeled by device models, which produce model results that are represented in the circuit equations as matrices.
A device model for modeling a circuit element, such as the SPICE model for modeling MOSFET devices, developed by UC Berkeley, typically includes model equations and a set of model parameters that mathematically represent characteristics of the circuit element under various bias conditions. For example, a circuit element with n terminals can be modeled by the following current-voltage relations:Ii=fi(V1, . . . , Vn, t) for i=1, . . . , n,where Ii represents the current entering terminal I; Vj(=1, . . . , n) represents the voltage or terminal bias across terminal j and a reference terminal, such as the ground; and t represents the time. The Kirchhoff's Current Law implies that the current entering terminal n is given by:
      I    n    =            ∑              i        =        1                    n        -        1              ⁢                  I        i            .      A conductance matrix of the circuit element is defined by:
      G    ⁡          (                                                  V                              1                ,                                                                        …              ⁢                                                          ,                                                                          V                n                            ,                                            t                              )        :=            (                                                                  ∂                                  f                  1                                                            ∂                                  V                  1                                                                          ⋯                                                              ∂                                  f                  1                                                            ∂                                  V                  n                                                                                          ⋮                                ⋰                                ⋮                                                                              ∂                                  f                  n                                                            ∂                                  V                  1                                                                          ⋯                                                              ∂                                  f                  n                                                            ∂                                  V                  n                                                                        )        .  To model the circuit element under alternating current (AC) operations, the device model also considers the relationship between node charges and the terminal biases:Qi=qi(V1, . . . , Vn, t) for i=1, . . . , n.where Qi represents the node charge at terminal i. Thus, the capacitance matrix of the n-terminal circuit element is defined by:
      C    ⁡          (                                                  V                              1                ,                                                                        …              ⁢                                                          ,                                                                          V                n                            ,                                            t                              )        :=            (                                                                  ∂                                  q                  1                                                            ∂                                  V                  1                                                                          ⋯                                                              ∂                                  q                  1                                                            ∂                                  V                  n                                                                                          ⋮                                ⋰                                ⋮                                                                              ∂                                  q                  n                                                            ∂                                  V                  1                                                                          ⋯                                                              ∂                                  q                  n                                                            ∂                                  V                  n                                                                        )        .  
A complex integrated circuit may contain millions of circuit elements such as transistors, resistors, and capacitors. The design and simulation of such a complex integrated circuit may involve multiple teams of engineers. It is advantageous to partition the design of such complex integrated circuit using a hierarchical approach, whereby certain circuit elements are grouped together and may be reused repeatedly throughout the integrated circuit or in a subsequent design. A method and system for design and simulation of an integrated circuit with a hierarchical data structure are disclosed by U.S. patent application Ser. No. 10/724,277, entitled “System and Method for Simulating a Circuit Having Hierarchical Structure,” filed on Nov. 26, 2003 and commonly owned by Cadence Design Systems, Inc., which is incorporated expressly by reference in its entirety herein.
Hierarchical simulation is most useful when it can also be applied to simulate a back-annotated flat netlist containing parasitic networks. During back-annotation, a flat netlist in DSPF (Detailed Standard Parasitic Format) or SPEF (Standard Parasitic Exchange Format) that consists of millions of RC elements is produced by a process called Parasitic Extraction. In other words, a back-annotated netlist is a description of a group of circuit elements and their corresponding connectivity in terms of parasitic properties of the circuit elements, such as resistance, capacitance, and inductance. The back-annotated flat netlist is also referred to as post-layout netlist, gate-level netlist, or flat netlist. A method and system for creating a hierarchical representation of a back-annotated netlist are described in U.S. patent application Ser. No. 10/993,686, entitled “System and Method for Converting a Flat Netlist into a Hierarchical Netlist”; and a method and system for determining electrical isomorphism between electrical networks in a back-annotated netlist are disclosed in U.S. patent application Ser. No. 10/993,687, entitled “Electrical Isomorphism”, which are incorporated herein in their entirety by reference.
Despite the recent advancements in SPICE simulation technology, the post-layout netlist verification using circuit simulation is still a very time consuming task because of the very large number of circuit elements integrated into a single chip. In situations where a simulation runs very slowly or terminates inadvertently due to large partitions, non-convergence matrix, singular matrix, or illegal voltage source and/or inductor loops, it may take designers days or even weeks to identify the underlying root cause of the simulation failure. In other cases, errors may be mistakenly introduced in the synthesis flow, in the extraction flow, or in the test environment.
RC reduction is a common technique used to speed up the simulation of the post-layout netlist. However, illegal voltage source and/or inductor loops may be produced as side effects of the RC reduction of the post-layout netlist. FIG. 1a and FIG. 1b illustrate an illegal voltage loop introduced by the RC reduction process. As shown in FIG. 1a, prior to RC reduction, the circuit includes a 1V voltage source 102, a 10V voltage source 104, and a small resistor 106. After the RC reduction process, the small resistor 106 is removed, which results in the circuit shown in FIG. 1b. Thus, an illegal voltage source loop is formed by having only the 1V and 10V voltage sources in a loop.
Another problem of RC reduction is that illegal voltage-inductor loops may be introduced. FIG. 1c and FIG. 1d illustrate an illegal voltage-inductor loop. As shown in FIG. 1c, prior, to RC reduction, the circuit includes a 1V voltage source 108, an inductor 110, and a small resistor 112. After the RC reduction process, the small resistor 112 is removed, which results in the circuit shown in FIG. 1d. As a result, an illegal voltage-inductor loop is formed by having only the 1V voltage source 108 and the inductor 110 in a loop.
Note that the voltage source and/or inductor (V-L) loops may includes one or more voltage (V) sources only, one or more inductor (L) sources only, or a combination of one or more voltage sources and inductors. In addition, the illegal V-L loops may lead to other problems in simulation. For example, the illegal V-L loops in FIG. 1b and FIG. 1d may form singular matrix that would terminate the simulation inadvertently, non-convergence matrix that would hang the simulation, or large partitions that would slow down the simulation.
Therefore, methods and systems are needed for efficiently validating a hierarchical simulation database.